Skip to main content

Esempio CNC 02: Decodifica in linea con variabili

Vedi il CNC02_online.project progetto di esempio nella directory di installazione di CODESYS sotto ..\CODESYS SoftMotion\Examples.

L'esempio mostra come utilizzare le variabili per decodificare un programma CNC.

Creazione di un programma NC nell'editor CNC

  1. Creare un CNCOnline programma con a SoftMotion controllore.

  2. Crea un elenco di variabili globali e dichiara due variabili.

    VAR_GLOBAL
            g_x: REAL:=100;
            g_y:REAL:=50;
    END_VAR
  3. Inserisci a Programma CNC oggetto chiamato Example.

    Seleziona il ImplementazioneDin66025 e il Modalità di compilazione SMC_CNC_REF. Questa modalità è necessaria perché si utilizzano variabili nel programma.

  4. Specificare i seguenti blocchi di movimento:

    Editor CNC:

    _sm_img_example_cnc2_1.png

Creazione di un'interfaccia dell'azionamento e configurazione del PLC

Definire una struttura dell'unità (ad es CNCdirect).

Creazione di un programma IEC

  1. Aggiungi un POU (CFC) denominato Path all'applicazione.

    La decodifica del programma NC per OUTQUEUE e il controllo della velocità avvengono nel Path programma.

    chiamando SMC_CheckVelocities è obbligatorio.

    CFC:

    _sm_img_example_cnc2_3.png
  2. Aggiungi un POU (CFC) denominato Ipo all'applicazione.

    Questo programma è quasi identico al CNCdirect progetto campione. Tuttavia, i dati immessi dall'interpolatore non corrispondono ai nomi dei programmi CNC (ADR(Example)), ma all'output OutQueue dei blocchi funzione di preelaborazione del percorso (checkVel.poqDataOut).

Creazione di un'attività per la preelaborazione del percorso

Perché hai selezionato la modalità di compilazione SMC_CNC_REF, è necessario eseguire la decodifica e la preelaborazione del percorso nel programma IEC. Questo calcolo richiede tempo. Non deve essere eseguito nel ciclo dell'interpolatore poiché per ogni richiamo del decoder viene generato un oggetto vettoriale e questo oggetto viene generalmente utilizzato per molti richiami dell'interpolatore. Dovresti sostituire questa operazione con un'attività con priorità bassa e chiamate meno frequenti.

  1. Creare un PathTask compito.

  2. Definire i seguenti parametri:

    • Priorità: 10

    • Intervallo: T#30ms

  3. Aggiungi il Path POU al compito.

Figura 1. Compito "PathTask"
Compito "PathTask"


. Meccanismo sottostante:
  • Nel task lento, all'inizio viene generato circa un oggetto GEOINFO per ciclo. Questo oggetto è memorizzato nella struttura OUTQUEUE del blocco funzione del decodificatore. Se OUTQUEUE è pieno, i blocchi funzione del task lento si interrompono fino a quando OUTQUEUE non è più pieno. Questo accade non appena l'attività veloce elabora il primo oggetto GEOINFO e lo elimina da OUTQUEUE.

  • Quindi i blocchi funzione del task lento diventano nuovamente attivi e riempiono la struttura OUTQUEUE.

  • Nel compito veloce, un punto di percorso dalla struttura OUTQUEUE, che il DataIn l'input punta a, viene calcolato ed elaborato in ogni ciclo. Poiché un oggetto GEOINFO è generalmente costituito da più punti di percorso, sono necessari alcuni cicli prima che il primo oggetto GEOINFO venga elaborato e cancellato automaticamente dall'interpolatore.

  • Poiché l'elaborazione di un oggetto GEOINFO dura diversi cicli rispetto alla sua creazione, il task lento può essere chiamato meno frequentemente rispetto al task veloce.

  • Tuttavia, i tempi del task devono essere selezionati in modo che un numero sufficiente di oggetti GEOINFO sia sempre memorizzato nell'ultimo OUTQUEUE del task lento, prevenendo così il verificarsi di eventuali underrun di dati. Questo accade quando non ci sono più oggetti GEOINFO disponibili per l'interpolatore da DataIn e la fine del percorso non è stata ancora raggiunta. In questo caso, l'interpolatore rallenta e si ferma fino a quando non sono nuovamente disponibili nuovi elementi di dati.

Creazione di un'interfaccia operativa e di un'interfaccia di test

La visualizzazione corrisponde al CNCdirect.project progetto campione. Aggiungere modelli aggiuntivi ai nuovi blocchi funzione (SMC_NCDecoder e SMC_CheckVelocities). Crea un display anche per le variabili globali g_x e g_y in modo da poterne verificare il funzionamento in seguito durante la messa in servizio.

La messa in produzione

Compila e avvia il programma creato. Il programma esegue il movimento del CNC non appena il Execute è stato impostato l'ingresso del decoder e dell'interpolatore. Se si modificano i valori delle variabili globali, vengono utilizzati al riavvio del decoder e il percorso viene adattato di conseguenza. Monitorare la funzione del Append anche l'ingresso del decoder.